<?php

App::import('module','admin/admincontroller');

Class ProdutoController extends AdminController
{    
	public $uses = array('produto','categoria');
	
	public $comp = array('redimensiona','upload');
	
	public function index()
    {      	    	
    	$filtro  = new QueryFilter();
    	$parametres = array();

		if(!empty($this->data['Produto']['categoria_id']))
		{
			$filtro->addFilter('categoria_id',$this->data['Produto']['categoria_id'] );
			$parametres['categoria_id'] = $this->data['Produto']['categoria_id'];
		}
		if(!empty($this->data['Produto']['nativo']))
		{
			$filtro->addFilter('ativo',0 );
			$parametres['nativo'] = $this->data['Produto']['nativo'];
		}
		if(!empty($this->data['Produto']['ativo']))
		{
			$filtro->addFilter('ativo',$this->data['Produto']['ativo'] );
			$parametres['ativo'] = $this->data['Produto']['ativo'];
		}
		if(!empty($this->data['Produto']['destaque']))
		{
			$filtro->addFilter('destaque',$this->data['Produto']['destaque'] );
			$parametres['destaque'] = $this->data['Produto']['destaque'];
		}
		if(!empty($this->data['Produto']['novo']))
		{
			$filtro->addFilter('novo',$this->data['Produto']['novo'] );
			$parametres['novo'] = $this->data['Produto']['novo'];
		}
				
		$filtro->command = 'ORDER BY id DESC';		
		$display = array(
			'filter'=>$filtro,
			'limit'=>50,
			'parametres'=>$parametres,
			'post'=>true
		);
		$all = $this->Produto->pagination($display);
		$this->set('produtos',$all);
		
		$categorias = $this->Categoria->all();
		array_unshift($categorias, '');
		$this->set('categorias',$categorias);
		
    }

    public function add()
    {      	    	
    	if(!empty($this->data))
    	{		
    		//DebugUtil::PrintValue($this->files,'Line:'.__LINE__ . ' Class:'.__CLASS__);
    		$upload = new Upload();
    		
    		if(empty($this->data['Produto']['pasta']))
    		{
    			$pasta = rand(1,10);
	    		$folder   = 'pro/' . $pasta;	 
	    		if(!FileUtil::Exists($folder))
				{
					FileUtil::ForceDirectories($folder . '/mini');
				}
			    			
	    		$this->data['Produto']['pasta'] = $pasta;  
    		}else{
    			$pasta = $this->data['Produto']['pasta'];
    			$folder   = 'pro/' . $pasta;
    		}    		
    		  		
			$redimensiona = new Redimensiona();			
    		if(!empty($this->files['img1']) || !$this->files['img1']->isImage)
    		{	    		
	    		for($i = 1; $i <= 2;$i++)
	    		{
	    			//DebugUtil::PrintValue($i,'Line:'.__LINE__ . ' Class:'.__CLASS__);
	    			
	    			$nameI = 'img' . $i;
	    			if(!empty($this->files[$nameI]) || !$this->files[$nameI]->isImage)
		    		{	    			
		    			$nome = $upload->GerarNome($this->files[$nameI]->extensao,false);	
		    			$upload->setFolder($folder . '/');							
						if($upload->salvar($this->files[$nameI]->tmp_name,$nome))
						{				
							$urlImage = $folder."/" . $nome;	
							$urlImageThumb = $folder ."/mini/".  $nome;				
							copy($urlImage, $urlImageThumb);

							$dimensoes = array(
								'height' => 200,
								'width' => 200
							);						
							$redimensiona->redimensionar($urlImage, $dimensoes, true, true, true);			
							$redimensiona->save();
							
							$dimensoes = array(
								'height' => 100,
								'width' => 100
							);						
							$redimensiona->redimensionar($urlImageThumb, $dimensoes, true, true, true);			
							$redimensiona->save();					
							
							$this->data['Produto'][$nameI] = $nome;
			    		}			    		
		    		} 		    		 
		    	}
		    	
		    	if(!empty($this->data['img']['img1']) && !empty($this->data['Produto']['img1']) )
		    	{	 
		    		unlink("pro/$pasta/" .$this->data['img']['img1'] );
		    		unlink("pro/$pasta/mini/" .$this->data['img']['img1'] );
		    	}	
		    	if(!empty($this->data['img']['img2']) && !empty($this->data['Produto']['img2']))
		    	{		 
		    		unlink("pro/$pasta/" .$this->data['img']['img2']);
		    		unlink("pro/$pasta/mini/" .$this->data['img']['img2']);
		    	}
		    	
		    	$this->setShow('Produto salvo com sucesso');		    	
		    	
		    	if(!empty($this->data['Produto']['preco']))
		    	{
		    		$this->data['Produto']['preco'] = str_replace('.','',$this->data['Produto']['preco']);
					$this->data['Produto']['preco'] = str_replace(',','.',$this->data['Produto']['preco']);		    		 
		    	}		    	
		    	$this->data['Produto']['descricao'] = str_replace('/webroot','',$this->data['Produto']['descricao']);
		    	
		    	$this->Produto->Save($this->data);		    	
		    	$this->_context->redirectUrl('admin.produto');		    		
    		}
    		
    		$this->setShow('Imagem Principal é Obrigatório');       		
    	}
    	$categorias = $this->Categoria->all();
		$this->set('categorias',$categorias); 
		$this->_context->addHelper('fkeditor');	
    }
    
    public function view($id ='')
    {    	
    	if(empty($id))
    	{
    		$this->_context->redirectUrl('admin.produto');
    	}   	
    	$produto = $this->Produto->findForId($id);    	
    	$produto['preco'] =  CurrencyUtil::Real($produto['preco']);
    		
    	$this->set(compact('produto'));  	
    }
    
    public function edit($id = null)
    {    	
    	if(!$id)
    	{    		
    		$this->_context->redirectUrl('admin.produto');
    	}    	
    	if (empty($this->data)) {
			$this->createData($this->Produto->findForId($id),$this->Produto);  
			$this->data['Produto']['preco'] = CurrencyUtil::Real($this->data['Produto']['preco']);
		}		
		$categorias = $this->Categoria->all();
		$this->set('categorias',$categorias);
		$this->_context->addHelper('fkeditor');	
		
    }
    
    public function del($id)
    {    	
    	if(!$id)
    	{    		
    		$this->_context->redirectUrl('admin.produto');
    	}

    	$produto = $this->Produto->findForId($id);
    	$folder   = 'pro/' . $produto['pasta'];
    	
    	if($produto['img1'])
    	{ 	
    		unlink($folder . '/mini/' . $produto['img1']);
    		unlink($folder . '/' . $produto['img1']);
    	}	
    	if($produto['img1'])
    	{
    		unlink($folder . '/mini/' . $produto['img2']);
    		unlink($folder . '/' . $produto['img2']);   	
    	}
    	$this->Produto->Delete($id); 
    	$this->_context->redirectUrl('admin.produto');
    }
}
?>
